Install application

The customer portal makes calls to the Third-Party Gateway to request the installation and licensing of an application. Installing the application is a multi-step process. An immediate response is sent over the response queue indicating that the EAC has received the request. Status updates about the installation and licensing progress are sent over the customer portal's service bus notification queue.

Install application details

Request URL

POST di/third-party-gateway/api/v1/tenants/{tenantId}/applications/{appId}/install

URL parameters

tenantId – Tenant ID

appId – ApplicationId

Request headers

Itron-CorrelationId: Must be unique per request. Also acts as a correlation ID to correlate to job notification.

Request body schema

{
"type": "object",
"properties": {
"applicationId": {
"type": "int",
"description": "Unique Identifier of Application"
},
"applicationVersion ": {
"type": "String",
"description": "If the App Version is not specified, the latest version relevant to the Utility shall be installed"
},
"esnList": {
"type": "Array of Esns",
"description": "This field is in the form of a List. Specified application will be installed on one or many ESNs listed in the request."
},
"licenseSet": {
"type": "Guid",
"description": "If the License set is not included, then the App Store shall default the next available license with a remaining duration of at least 7 days."
}
}
}

Request body example

{
"applicationId": 12345,
"applicationVersion": "Application Version (optional)",
"esnList": ["ESN1", "ESN2"],
"licenseSet": "License Set (optional)"
}

Response code

202 The request successfully accepted and forwarded to the EAC. The customer portal must listen on the response queue to collect the list of subscribers.

Async response schema

Body is null.

Sample async response

{
"body": "",
"contentType": "application/json",
"correlationId": "f671a144-8294-4115-a1d7-029b2f70547d",
"deadLetterSource": null,
"deliveryCount": 1,
"enqueuedSequenceNumber": 0,
"enqueuedTimeUtc": "2020-12-02T09:06:51.3975043Z",
"expiresAtUtc": "9999-12-31T23:59:59.9999999",
"forcePersistence": false,
"isBodyConsumed": false,
"label": null,
"lockedUntilUtc": null,
"lockToken": null,
"messageId": "facf60625343487285c297e64c5bcfc5",
"partitionKey": null,
"properties": {
"Itron-Tenant-Id": "11111111-2222-3333-4444-555556666666",
"Itron-CorrelationId": "f671a144-8294-4115-a1d7-029b2f70547d",
"IsCompressed": false,
"Itron-Status-Code": "202",
"Itron-Request-Verb": "Post",
"Itron-Request-Uri": "api/v1/tenants/11111111-2222-3333-4444-555556666666/applications/30062e5c-c0da-4434-82c0-450bbc1f3509/install"
},
"replyTo": null,
"replyToSessionId": null,
"scheduledEnqueueTimeUtc": "0001-01-01T00:00:00",
"sequenceNumber": 105,
"sessionId": null,
"size": 431,
"state": 0,
"timeToLive": "10675199.02:48:05.4775807",
"to": null,
"viaPartitionKey": null
}